class AddressInformation {
  int code;
  String message;
  Null fullMessage;
  List<ProvinceInformation> children;

  AddressInformation(
      {this.code, this.message, this.fullMessage, this.children});

  AddressInformation.fromJson(Map<String, dynamic> json) {
    code = json['code'];
    message = json['message'];
    fullMessage = json['full_message'];
    if (json['children'] != null) {
      children = List<ProvinceInformation>();
      json['children'].forEach((v) {
        children.add(ProvinceInformation.fromJson(v));
      });
    }
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['code'] = this.code;
    data['message'] = this.message;
    data['full_message'] = this.fullMessage;
    if (this.children != null) {
      data['children'] = this.children.map((v) => v.toJson()).toList();
    }
    return data;
  }
}

class ProvinceInformation {
  String label;
  String value; // adrName
  String parentId;
  String topParentId;
  List<CityInformation> children;

  ProvinceInformation(
      {this.label, this.value, this.parentId, this.topParentId});
  ProvinceInformation.fromJson(Map<String, dynamic> json) {
    label = json['label'];
    value = json['adr_name'];
    parentId = json['parent_id'];
    topParentId = json['top_parent_id'];
    if (json['children'] != null) {
      children = new List<CityInformation>();
      json['children'].forEach((v) {
        children.add(CityInformation.fromJson(v));
      });
    }
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['label'] = this.label;
    data['value'] = this.value;
    data['parent_id'] = this.parentId;
    data['top_parent_id'] = this.topParentId;
    if (this.children != null) {
      data['children'] = this.children.map((v) => v.toJson()).toList();
    }
    return data;
  }
}

class CityInformation {
  String label;
  String value; // adrName
  String parentId;
  String topParentId;
  List<AreaInformation> children;

  CityInformation(
      {this.label, this.value, this.parentId, this.topParentId, this.children});

  CityInformation.fromJson(Map<String, dynamic> json) {
    label = json['label'];
    value = json['adr_name'];
    parentId = json['parent_id'];
    topParentId = json['top_parent_id'];
    if (json['children'] != null) {
      children = new List<AreaInformation>();
      json['children'].forEach((v) {
        children.add(new AreaInformation.fromJson(v));
      });
    }
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['label'] = this.label;
    data['value'] = this.value;
    data['parent_id'] = this.parentId;
    data['top_parent_id'] = this.topParentId;
    if (this.children != null) {
      data['children'] = this.children.map((v) => v.toJson()).toList();
    }
    return data;
  }
}

class AreaInformation {
  String label;
  String value; // adrName
  String parentId;
  String topParentId;
  List<StreetInformation> children;

  AreaInformation(
      {this.label, this.value, this.parentId, this.topParentId, this.children});

  AreaInformation.fromJson(Map<String, dynamic> json) {
    label = json['label'];
    value = json['adr_name'];
    parentId = json['parent_id'];
    topParentId = json['top_parent_id'];

    if (json['children'] != null) {
      children = new List<StreetInformation>();
      json['children'].forEach((v) {
        children.add(new StreetInformation.fromJson(v));
      });
    }
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['label'] = this.label;
    data['value'] = this.value;
    data['parent_id'] = this.parentId;
    data['top_parent_id'] = this.topParentId;
    if (this.children != null) {
      data['children'] = this.children.map((v) => v.toJson()).toList();
    }
    return data;
  }
}

class StreetInformation {
  String label;
  String value; // adrName
  String parentId;
  String topParentId;

  StreetInformation({this.label, this.value, this.parentId, this.topParentId});

  StreetInformation.fromJson(Map<String, dynamic> json) {
    label = json['label'];
    value = json['adr_name'];
    parentId = json['parent_id'];
    topParentId = json['top_parent_id'];
  }

  Map<String, dynamic> toJson() {
    final Map<String, dynamic> data = new Map<String, dynamic>();
    data['label'] = this.label;
    data['value'] = this.value;
    data['parent_id'] = this.parentId;
    data['top_parent_id'] = this.topParentId;
    return data;
  }
}
